{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# This allows multiple outputs from a single jupyter notebook cell:\n",
    "from IPython.core.interactiveshell import InteractiveShell\n",
    "InteractiveShell.ast_node_interactivity = \"all\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'1.1.2'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import pandas as pd\n",
    "pd.__version__  # for the record"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.12.7a1'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import mplfinance as mpf\n",
    "mpf.__version__  # for the record"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(252, 9)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>UpperB</th>\n",
       "      <th>LowerB</th>\n",
       "      <th>PercentB</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2011-07-01</th>\n",
       "      <td>132.089996</td>\n",
       "      <td>134.100006</td>\n",
       "      <td>131.779999</td>\n",
       "      <td>133.919998</td>\n",
       "      <td>117.161659</td>\n",
       "      <td>202385700</td>\n",
       "      <td>132.373927</td>\n",
       "      <td>125.316073</td>\n",
       "      <td>1.219057</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-07-05</th>\n",
       "      <td>133.779999</td>\n",
       "      <td>134.080002</td>\n",
       "      <td>133.389999</td>\n",
       "      <td>133.809998</td>\n",
       "      <td>117.065437</td>\n",
       "      <td>165936000</td>\n",
       "      <td>133.254297</td>\n",
       "      <td>124.912703</td>\n",
       "      <td>1.066618</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-07-06</th>\n",
       "      <td>133.490005</td>\n",
       "      <td>134.139999</td>\n",
       "      <td>133.110001</td>\n",
       "      <td>133.970001</td>\n",
       "      <td>117.205429</td>\n",
       "      <td>143331600</td>\n",
       "      <td>134.040915</td>\n",
       "      <td>124.627085</td>\n",
       "      <td>0.992467</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  Open        High         Low       Close   Adj Close  \\\n",
       "Date                                                                     \n",
       "2011-07-01  132.089996  134.100006  131.779999  133.919998  117.161659   \n",
       "2011-07-05  133.779999  134.080002  133.389999  133.809998  117.065437   \n",
       "2011-07-06  133.490005  134.139999  133.110001  133.970001  117.205429   \n",
       "\n",
       "               Volume      UpperB      LowerB  PercentB  \n",
       "Date                                                     \n",
       "2011-07-01  202385700  132.373927  125.316073  1.219057  \n",
       "2011-07-05  165936000  133.254297  124.912703  1.066618  \n",
       "2011-07-06  143331600  134.040915  124.627085  0.992467  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "      <th>UpperB</th>\n",
       "      <th>LowerB</th>\n",
       "      <th>PercentB</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-06-27</th>\n",
       "      <td>132.419998</td>\n",
       "      <td>133.429993</td>\n",
       "      <td>131.970001</td>\n",
       "      <td>133.169998</td>\n",
       "      <td>118.980804</td>\n",
       "      <td>108088000</td>\n",
       "      <td>136.447962</td>\n",
       "      <td>128.140042</td>\n",
       "      <td>0.605441</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-06-28</th>\n",
       "      <td>132.289993</td>\n",
       "      <td>132.990005</td>\n",
       "      <td>131.279999</td>\n",
       "      <td>132.789993</td>\n",
       "      <td>118.641281</td>\n",
       "      <td>169242100</td>\n",
       "      <td>136.500761</td>\n",
       "      <td>128.219241</td>\n",
       "      <td>0.551922</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-06-29</th>\n",
       "      <td>135.199997</td>\n",
       "      <td>136.270004</td>\n",
       "      <td>134.850006</td>\n",
       "      <td>136.100006</td>\n",
       "      <td>121.598610</td>\n",
       "      <td>212250900</td>\n",
       "      <td>136.721010</td>\n",
       "      <td>128.792993</td>\n",
       "      <td>0.921670</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  Open        High         Low       Close   Adj Close  \\\n",
       "Date                                                                     \n",
       "2012-06-27  132.419998  133.429993  131.970001  133.169998  118.980804   \n",
       "2012-06-28  132.289993  132.990005  131.279999  132.789993  118.641281   \n",
       "2012-06-29  135.199997  136.270004  134.850006  136.100006  121.598610   \n",
       "\n",
       "               Volume      UpperB      LowerB  PercentB  \n",
       "Date                                                     \n",
       "2012-06-27  108088000  136.447962  128.140042  0.605441  \n",
       "2012-06-28  169242100  136.500761  128.219241  0.551922  \n",
       "2012-06-29  212250900  136.721010  128.792993  0.921670  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('data/SPY_20110701_20120630_Bollinger.csv',index_col=0,parse_dates=True)\n",
    "df.shape\n",
    "df.head(3)\n",
    "df.tail(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "Let's highlight whenever the \"Percent B\" Bollinger metric drops below zero.  \n",
    "To do this, let's first calculate a series that contains this information:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def percentB_belowzero(percentB,price):\n",
    "    import numpy as np\n",
    "    signal   = []\n",
    "    previous = -1.0\n",
    "    for date,value in percentB.iteritems():\n",
    "        if value < 0 and previous >= 0:\n",
    "            signal.append(price[date]*0.99)\n",
    "        else:\n",
    "            signal.append(np.nan)\n",
    "        previous = value\n",
    "    return signal"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "Take a small data set, and calculate a series that shows when the percentB falls below zero:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "tdf = df.loc['05-10-2012':'06-07-2012',]  # Take a smaller data set so it's easier to see the scatter points\n",
    "\n",
    "signal = percentB_belowzero(tdf['PercentB'], tdf['Close'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "Now plot the calculated information as an additional scatter plot on top of the the OHLC data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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JSUladiwYbriiit06tQpSVLbtm31+uuv695779UHH3ygmTNn1luDAaAqvjSNjFVI5ZpCAP6k1qHxyJEjaty4sYYNG1bh9gEDBigsLEw//fRTrRsHAP7M6u5jVmsB4E9qHRqdTqdOnz6t48ePq1WrVuW27927V3l5eWrRokWdGggANcE0MgDQMGodGnv16qVt27Zp0qRJuvfee1VYWChJ+uijj5Samqrk5GTZbDb16NGj3hoLAFaqO+Rb1dBxfQ0bf7Fzn5zO2q3WAgC+ptahccKECfr444/13Xff6bHHHnM/PmXKFEkld1Pb7XaNHz++7q0EgHpWVcWxvoaNnU4n1y0CCBi1vnu6X79+SkxMVFhYmEzTLPcVFham3//+97ryyivrs70AAADwgjqtCDNs2DBde+21+uCDD7Rv3z7l5uaqadOmiomJ0dChQ7meEYDPYui4+rgLHIBUD8sINm/eXHfccUd9tKWMlStXau7cubr++us1f/78Mtu2bt2qZcuWKTU1VcXFxbr88ss1depUDRgwwL3P4cOHNW/ePH355ZfKyclRdHS0Jk6cqBtvvLHe2wrA/zB0XH3cBQ5AquMygnl5eVqwYIEWLVpU5vEJEyYoISFBp0+frvFzZmdna8qUKVq+fLkaN25cbvvmzZsVHx+v/v37a926dVqzZo0aNWqk8ePHa//+/ZKkU6dO6Z577tGhQ4c0f/58rVu3Tj179tSDDz6oTz75pHYnCwAAcB7DMKpcVCCQ1LrSmJubq9GjR2vPnj268847y2w7duyYPv30U33xxRd68803azQEtHHjRhmGofXr12vUqFHltm/atEkDBw7UjBkz3I8lJCRoyJAh2rZtmy6++GJt2rRJR44cUXJysjp1Kpnod/bs2dqyZYvWrl2rq666qnYnDQBBiKF8oHLBVImvdWhcsWKFvvvuO0lSWFhYmW3t2rXT3r17deDAAS1dulTTp0+v9vMOGTJEsbGxcjgcFW4/f6haknvNa9dShnfeead+9atfqV27du597Ha72rRpwzJiAFBDDOUDkOoQGv/xj3/IZrNp9uzZuvvuu8tsW7x4sd544w09++yz+vvf/16j0BgVFVWjdhw9elQJCQmKjIzU7bffLklq1KhRmcAolaxgs3fvXk2YMKHK57PZSr78lavt/nwOqJnSfe3Pv7+Gkasel5SMDGz/uvLK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2GDecccd5g033GD+5je/MY8fP26apmmmpKSYc+fOrfD3BL6lqKjI/O1vf2tOnDixzOPLli0zb7jhBnPQoEHmgQMHTNMs+7ovLCw0U1JSzJiYGLNv377m7t27PdpuBAYqjQHKdZ1KVlaWrrzySu3du1eTJ0+WYRhq1KiRewm5u+66S7NmzZLNZtPMmTM1a9Ys/fGPf9S4ceOUk5OjKVOmePM0UANV9bnr0oOK9r/++ut1880367HHHtPOnTu5xskP7dixQ507d9ZvfvMbtW7dWs2bN1dCQoIcDofef/99937NmzfXt99+qy5dumjRokW64IILJJVc9/rII49U+HsC32Kz2fTTTz+pZ8+ekuR+Lx8/frxmzJihZs2aacyYMUpPTy/Tnw6HQ59//rnCwsK0du1aXXbZZV47B/gvQmMAy8zMVKNGjfTss8/qvvvu0/79+ysMjrfeeqt+//vfa+bMmUpNTVV6ero6deqkv/3tbwoJCeFDxI9U1eeVBYLWrVsrNjZW99xzj3r06OGFVqOu0tLSdOjQIYWFhSkkJESmaSosLEwtW7bUyZMn3fsNHjxYL7/8sn7/+9+7A6N53t2zrksX4LuOHz+u77//XpLUqFEj91D0zTffrOnTp6tp06Z64okndOzYMXd/Llq0SIsWLdKaNWvUtWtXr7Ud/o3QGMBat26tVq1aKTQ0VGPGjNGYMWMqDY4xMTEaPXq03nzzTb322mt69tlnFRISosLCQj5E/IhVn5e+1qm0vn37avbs2e4+h3+58MILZbfblZmZ6b42NSwsTBEREe75F13XM1933XVq06aN+3upLPsP8793Pt92221KSUlx39RU+nV70003KTY2VhkZGfroo4/c39u9e3e98847LC2IOrGZ5/+ZiYBy7NgxtW7dWlLJxK/Lly/X6tWrdfHFF2vx4sVyOp3ufU+cOOGuPkhiXVo/VZM+P3nypCIiIrzVVNSTjIwM5eXl6ZJLLinzeFxcnC655BLNmTNHhYWFCgkJkST9/PPPatu2rTeainqQmpqqGTNmqEWLFnrkkUfcU+yU7uO7775bYWFhWrZsmTebigBDpTHAtWrVSlLJnZONGzfW+PHjy1SfXJXG6dOna82aNWW+l8Don2rS58nJyd5sKuqBaZqKiooqExhN01RBQYGys7PVokULSXKHifvvv18vvviiV9qK+hETE6PHH39c3377rV5++WX37BchISHu13ffvn0rnXILqK0QbzcADcsV/FyT9jZu3Fjjxo2TaZr685//rEmTJslutys9PV1z5871cmtRH+jz4FLRH3eux0pfXmKapiZPnqz09HT3utPwT6ZpavDgwVqwYIFmzJihF154QWPGjNHNN9+sRo0aSZJ++ukntWvXzj0nK0UA1AdCY4AoLi62nJTXFSKaNGmiKVOmyOFwaMGCBerZs6f++c9/KjQ0tMzwBnwbfR6cqtPvUskNEi1atFBoaKikkrtrDx8+rPfee49+DwCmaeq6667TK6+8oj/84Q9KSkrSJ598ossuu0z79+/XP/7xD7311ltck456xTWNAcB17WFBQYFOnjypdu3aVet6xPHjx+vEiRN6++233RdS8yHiH+jz4FTTfh89erQiIiJkt9u1Z88ebdy4kcDoJ6z+OHB9dNtsNu3du1ebN2/Whg0bFB4ergsuuEAzZ87UpZde6qnmIkgQGgNEUVGRfvOb36hXr16aPXu25f6PPvqoUlJStHnzZj5E/BR9Hpyq0++uILlo0SK99NJLuuyyy/Tmm2/S736iqKjIXSHcvXu3WrduraZNmyo8PLzK7ysuLlZRUZH7shSgvnEjTIBwOBzq06ePPvnkE6Wnp1e575kzZ9SrVy9t2bKFDxE/Rp8Hp+r0u6vyeM011+j666/XW2+9Rb/7CdM03YHx8ccf1wMPPKDhw4fr5Zdf1g8//FDp97kqk6GhoQRGNBhCYwAZPHiwzpw5owMHDkhSpWsJN2vWTHfffbd74m4+RPwXfR6cqtPvxcXFuuyyy7Rw4UIuRfATxcXF7sD/xBNPaNeuXZo6daquvPJKrVq1Si+++KJ7Uu/zVec6V6Cu+C3zQ+ev6uG6wmDQoEEaOHCgFixYoLy8vGq9iXCRtH+gz4NTXfr9/McIjL7P1Wf5+flq0aKFXnrpJd15552aN2+eJk2apC1btuiVV15RWlqal1uKYEVo9EMOh0OGYeiJJ57QN998U2aZsHvuuUdNmjTRZ599JqnyyhP8C30enOj34POHP/xBAwcO1DfffFPmD7wZM2Zo7Nix2rx5sxYtWlRpxRFoSIRGP+OqNLz33nvaunWrxo4dq4cfflibNm1SQUGBevbsqfbt22v9+vWSGLIIBPR5cKLfg8P51eR+/frpwgsv1O7du5WZmVlmnxkzZmjcuHH66KOP9Mc//lEHDx70dHMR5Lh72k+UvptO+t/dkatXr3bfEdunTx/dcsst6tWrl6ZOnarnnntOAwcO9GKrURf0eXCi34PTO++8owEDBigyMlIfffSREhIS5HA49Oqrr6pz585lfi+SkpK0adMmrVu3Tu3atfNyyxFMCI1+wHUBe15ent59913l5eWpXbt2uvnmmyWVXP+yZ88evfXWW+6hqrNnz2rMmDGKj4+v9mTA8B30eXCi34PTtm3bNGnSJI0aNUoPPPCA2rdvr48++kjPPPOMnE6nXn755XLB8cSJE7rgggu83HIEG0Kjj3O9SeTk5Cg2NlZhYWH68ccfZZqmhg8frpkzZ7r3LSgoUH5+vl5//XVt375d6enpWrdunSIjI714Bqgp+jw40e/Bbfny5Zo7d67uuOMOTZ06tVxwfOWVV3ThhReWq0QDHmXCJxUXF7v/nZeXZ956663m1KlTTdM0zcOHD5vXXXedGRMTYyYlJbn3KygocP97z5495m233WZ+8sknnms06oQ+D070e/AoLi42CwsLyzx27tw597+XLl1qxsTEmE8++aT5448/mqZpmv/617/M66+/3rzqqqvMQ4cOebS9wPkYx/Axp06dcs/V5bobcsuWLSouLtbChQslSS+88ILsdrtuuOEGrVmzRgsWLJAkhYaGur/n0ksvVV5enlJSUrxyHqg++jw40e/Bo7CwUFLJpOuuKuH8+fOVnp7unjtVkiZMmKBHH31U69at0yuvvKIff/xRQ4YM0W9/+1tFRERYLhMKNDQm7vIh33zzjRISEnTXXXdp2LBh7jeXtLQ099QbiYmJ2rdvn/7yl78oJydHe/bs0WuvvaaMjAxJUlxcnHr16iWHw6H27durffv23jwlWKDPgxP9HjxycnI0cuRIDR8+XPHx8ZKkzz//XCtXrtTmzZv12muvKSoqyj3sPH78eJ0+fVpLlixRWFiYRo8ereuuu04DBw6U0+n08tkg2FFp9BFnz57VggUL9PXXX+vvf/+7Nm7c6P7r8+qrr9bzzz+v1NRU/fvf/9bs2bMVERGhqKgo3XPPPbr66qv17bffas+ePfrlL38ph8Ohv//97/ryyy91xRVXePnMUBn6PDjR78EjJydHw4YNU1ZWll566SUtXbpUknTllVfqscceU0FBgSZPnqwffvhBDofDXZG89dZb1bp1a61evVqrVq1SUVERgRE+gUqjj2jSpImGDRumTz/9VHv37lVeXp5sNpt+/etfq3fv3pKkt99+W4cPH1aLFi3c35eRkaGBAwfq+eefV4sWLWS321VYWKjLLrtMH3zwgaKiorx1SrBAnwcn+j04FBcX6+mnn1bfvn0VHx+v1157TS+88IKKioo0ZcoUxcXFSZKWLVumKVOm6NVXX9WFF14oqeR3ZOTIkYqOjlb37t258QU+g9DoA8z/zsN23XXXafjw4XI4HNq3b59ef/112e12/frXv5bdbld4eLjy8/OVlpam6OhohYaG6tixY7riiisUEREhSe51hX/xi194+axQFfo8ONHvwcNut+uhhx5Sp06dJJVcr2iapvu61NLBcfny5Zo0aZIWLVqkjh076q9//at27dqladOmsfwjfAq/jT7AdXGz0+lUq1attGvXLs2bN09PP/20Fi9eLEm66aabdN111+mmm27SI488ogEDBujEiROy2+265ppr3M/FX6T+gT4PTvR7cHEFRkm66KKLNGnSJEkqFxztdrtef/113XLLLeratat+/vlnrVq1isAIn8M8jV7imsTXNRmv6yLovLw83XDDDRo9erTuvfdejR8/Xjk5OZo4caJuueUWnTx5UmvXrtWuXbvUoUMHPfnkk+677/gQ8W30eXCi31Ha999/ryVLlmj9+vV6+OGH3UEyJSVFX375pU6dOqXY2Fh16dLFyy0FyiM0esGePXv0zjvv6I477tCll17qfvzcuXMKDQ3Vyy+/rA8//FDJycnKz89XfHy8DMPQ5MmTdeONN8rhcOjs2bNq0qSJpP99KMF30efBiX5HRUoHx6SkJA0fPty9jVV94MsIjR72448/atSoUTp27JgaN26su+66S927dy/zprF7927FxcXp0Ucf1T333KMTJ05o2rRpysvLU2xsrO644w73m4rrGin4Lvo8ONHvqEpaWprmzJmjiIgIPf/88woNDZXD4aCf4dP4c8bDGjdurGuuuUY9evRQVFSU0tPT9dJLL+mee+7RX//6V506dUrdu3fXmDFjtGbNGh04cEAXXHCBXnnlFeXl5emrr74q81coby6+jz4PTvQ7KuKalP2iiy5St27ddOTIEXdglOhn+DYqjV5w7NgxLVq0SPv371enTp105513atGiRUpNTVWjRo0UHx+vnJwcvf/++xo9erRuvfVWSSVzfoWFhXE9kx+iz4MT/Y7z/fzzz2rbtq0k6ZlnntGxY8c0d+5cNW7c2MstA6wRGr3k559/1uLFi5WSkqLhw4dr/Pjx2rFjh9auXatPPvlEF110kb766iv17dtXq1evLlNx4EJ4/0SfByf6HS4pKSmKj49X9+7d1bhxY+3cuVPJycllrncFfBlXVHtJ27ZtNWXKFNlsNr399tvKy8vT1KlT1bdvX23evFnffvutMjIytGPHDm3cuFG33367+3v5EPFP9Hlwot/h0qFDBw0bNkyHDx9Wp06d9Nhjj+miiy7ydrOAaqPS6GVZWVlavHixPv/8cw0dOlSPPPKIpJLrXjIzM/Xuu+/q/vvv58MjgNDnwYl+h0tRUZFsNht3ScPvEBp9gOvD5IsvvtCvfvUrPfTQQ+X2YZgqsNDnwYl+B+DPGJ72AW3atNHkyZMlSR9++KFyc3M1e/bsMvvwIRJY6PPgRL8D8GeERh/Rpk0bTZkyRWfOnNGpU6eYqysI0OfBiX4H4K8YnvYx2dnZat68uex2Ox8mQYI+D070OwB/Q2j0USwlFXzo8+BEvwPwF4RGAAAAWOLPWwAAAFgiNAIAAMASoREAAACWCI0AAACwRGgEAACAJUIjAAAALBEaAQAAYInQCAAAAEuERgAAAFj6/6+tefA6Rbl4AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 800x575 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "apd = mpf.make_addplot(signal,type='scatter',markersize=200,marker='^')\n",
    "\n",
    "mpf.plot(tdf,addplot=apd)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[nan,\n",
       " nan,\n",
       " 132.76890099000002,\n",
       " nan,\n",
       " nan,\n",
       " 129.55140099000002,\n",
       " nan,\n",
       " nan,\n",
       " nan,\n",
       " nan,\n",
       " nan,\n",
       " nan,\n",
       " nan,\n",
       " nan,\n",
       " nan,\n",
       " 126.87840395999999,\n",
       " nan,\n",
       " nan,\n",
       " nan,\n",
       " nan]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "signal"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Now, what if we have only the signals (without nans in between)?  \n",
    "\n",
    "## Since `show_nontrading=False` (the default/unspecified value), <br>we need to specify the ***row number*** from the original dataframe as the x-value (not the date) ..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[2, 2, 5, 5, 15, 15]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[132.76890099000002,\n",
       " 136.76890099000002,\n",
       " 129.55140099000002,\n",
       " 133.55140099000002,\n",
       " 126.87840395999999,\n",
       " 130.87840395999999]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "x = []\n",
    "y = []\n",
    "for row,value in enumerate(signal):\n",
    "    if not np.isnan(value):\n",
    "        x.append(row)\n",
    "        y.append(value)\n",
    "        x.append(row)        # demonstrate having another value at the same x-coordinate\n",
    "        y.append(value+4.0)  # demonstrate having another value at the same x-coordinate\n",
    "\n",
    "x\n",
    "y   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7fb26e3e67f0>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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19ixY8u0PrlaGpOTk7VmzZoyP0tgDE41qfPU1NRAFhVeYBiG4uLiygRGwzBUVFSk3NxcNWnSRJLcYeL+++/XwoULA1JWeEdCQoIef/xxfffdd3rppZfcs19ERES4X9+9evWqdMotoLYiAl0A+JYr+Lkm7a1fv77GjBkjwzD017/+VRMmTJDValVWVpbmzp0b4NLCG6jz8FLRH3eubaWHlxiGoYkTJyorK8u97jSCk2EYGjBggBYsWKBp06bphRde0KhRozR48GDVq1dPknT06FHFxsa652SlEQDeQGgMEU6n0+OkvK4Q0aBBA02aNEk2m00LFixQt27d9P777ysyMrJM9wbMjToPT9Wpd+nCDRJNmjRRZGSkpAt31/7www967733qPcQYBiGrr/+er388sv605/+pJSUFH388cfq0qWLDhw4oH/961966623GJMOr2JMYwhwjT0sKirSqVOnFBsbW63xiGPHjtXJkyf19ttvuwdS8yESHKjz8FTTeh85cqRiYmJktVq1d+9ebdy4kcAYJDz9ceD66LZYLNq3b5+2bNmiDRs2KDo6WhdddJGmT5+uyy67zF/FRZggNIaIkpIS/e53v1P37t01c+ZMj8c/+uijSktL05YtW/gQCVLUeXiqTr27guTixYv14osvqkuXLnrzzTep9yBRUlLibiHcvXu3mjdvroYNGyo6OrrKn3M6nSopKXEPSwG8jRthQoTNZlPPnj318ccfKysrq8pjz549q+7du2vr1q18iAQx6jw8VafeXS2P1157rW644Qa99dZb1HuQMAzDHRgff/xxPfDAAxo6dKheeukl/e9//6v051wtk5GRkQRG+AyhMYQMGDBAZ8+eVUZGhiRVupZwo0aNdPfdd7sn7uZDJHhR5+GpOvXudDrVpUsXLVq0iKEIQcLpdLoD/xNPPKFdu3ZpypQpuuqqq7Rq1SotXLjQPan3L1VnnCtQVzzLgtAvV/VwjTDo37+/+vXrpwULFqigoKBabyIMkg4O1Hl4qku9/3IbgdH8XHVWWFioJk2a6MUXX9Sdd96pefPmacKECdq6datefvllZWZmBrikCFeExiBks9nkcDj0xBNP6Ntvvy2zTNg999yjBg0a6NNPP5VUecsTggt1Hp6o9/Dzpz/9Sf369dO3335b5g+8adOmafTo0dqyZYsWL15caYsj4EuExiDjaml47733tG3bNo0ePVoPP/ywNm3apKKiInXr1k2tWrXS+vXrJdFlEQqo8/BEvYeHX7Ym9+7dWxdffLF2796tnJycMsdMmzZNY8aM0fbt2/XnP/9Z33//vb+LizDH3dNBovTddNLPd0euXr3afUdsz549dcstt6h79+6aMmWKnnvuOfXr1y+ApUZdUOfhiXoPT++884769u2rtm3bavv27Zo9e7ZsNpteeeUVtW/fvszzIiUlRZs2bdK6desUGxsb4JIjnBAag4BrAHtBQYHeffddFRQUKDY2VoMHD5Z0YfzL3r179dZbb7m7qs6dO6dRo0Zp8uTJ1Z4MGOZBnYcn6j087dixQxMmTNCIESP0wAMPqFWrVtq+fbueeeYZ2e12vfTSS+WC48mTJ3XRRRcFuOQIN4RGk3O9SeTl5SkxMVFRUVH68ccfZRiGhg4dqunTp7uPLSoqUmFhoV577TV98cUXysrK0rp169S2bdsAXgFqijoPT9R7eFuxYoXmzp2rO+64Q1OmTCkXHF9++WVdfPHF5VqiAb8yYEpOp9P9/4KCAuPWW281pkyZYhiGYfzwww/G9ddfbyQkJBgpKSnu44qKitz/37t3r3HbbbcZH3/8sf8KjTqhzsMT9R4+nE6nUVxcXGbb+fPn3f9ftmyZkZCQYDz55JPGjz/+aBiGYfz73/82brjhBuPqq682Dh065NfyAr9EP4bJnD592j1Xl+tuyK1bt8rpdGrRokWSpBdeeEFWq1U33nij1qxZowULFkiSIiMj3T9z2WWXqaCgQGlpaQG5DlQfdR6eqPfwUVxcLOnCpOuuVsL58+crKyvLPXeqJI0bN06PPvqo1q1bp5dfflk//vijBg4cqN///veKiYnxuEwo4GtM3GUi3377rWbPnq277rpLQ4YMcb+5ZGZmuqfemDNnjvbv36+//e1vysvL0969e/Xqq68qOztbkpSUlKTu3bvLZrOpVatWatWqVSAvCR5Q5+GJeg8feXl5Gj58uIYOHarJkydLkj777DOtXLlSW7Zs0auvvqq4uDh3t/PYsWN15swZLV26VFFRURo5cqSuv/569evXT3a7PcBXg3BHS6NJnDt3TgsWLNA333yjf/7zn9q4caP7r89rrrlGzz//vNLT0/Wf//xHM2fOVExMjOLi4nTPPffommuu0Xfffae9e/fq17/+tWw2m/75z3/qyy+/1JVXXhngK0NlqPPwRL2Hj7y8PA0ZMkTHjh3Tiy++qGXLlkmSrrrqKj322GMqKirSxIkT9b///U82m83dInnrrbeqefPmWr16tVatWqWSkhICI0yBlkaTaNCggYYMGaJPPvlE+/btU0FBgSwWi37729+qR48ekqS3335bP/zwg5o0aeL+uezsbPXr10/PP/+8mjRpIqvVquLiYnXp0kUffPCB4uLiAnVJ8IA6D0/Ue3hwOp16+umn1atXL02ePFmvvvqqXnjhBZWUlGjSpElKSkqSJC1fvlyTJk3SK6+8oosvvljShefI8OHDFR8fr65du3LjC0yD0GgCxv/Nw3b99ddr6NChstls2r9/v1577TVZrVb99re/ldVqVXR0tAoLC5WZman4+HhFRkbq+PHjuvLKKxUTEyNJ7nWFf/WrXwX4qlAV6jw8Ue/hw2q16qGHHlK7du0kXRivaBiGe1xq6eC4YsUKTZgwQYsXL1abNm3097//Xbt27dLUqVNZ/hGmwrPRBFyDm+12u5o1a6Zdu3Zp3rx5evrpp7VkyRJJ0s0336zrr79eN998sx555BH17dtXJ0+elNVq1bXXXut+LP4iDQ7UeXii3sOLKzBKUseOHTVhwgRJKhccrVarXnvtNd1yyy3q1KmTfvrpJ61atYrACNNhnsYAcU3i65qM1zUIuqCgQDfeeKNGjhype++9V2PHjlVeXp7Gjx+vW265RadOndLatWu1a9cutW7dWk8++aT77js+RMyNOg9P1DtKO3jwoJYuXar169fr4YcfdgfJtLQ0ffnllzp9+rQSExPVoUOHAJcUKI/QGAB79+7VO++8ozvuuEOXXXaZe/v58+cVGRmpl156SR9++KFSU1NVWFioyZMny+FwaOLEibrppptks9l07tw5NWjQQNLPH0owL+o8PFHvqEjp4JiSkqKhQ4e697GqD8yM0OhnP/74o0aMGKHjx4+rfv36uuuuu9S1a9cybxq7d+9WUlKSHn30Ud1zzz06efKkpk6dqoKCAiUmJuqOO+5wv6m4xkjBvKjz8ES9oyqZmZmaNWuWYmJi9PzzzysyMlI2m416hqnx54yf1a9fX9dee62uuOIKxcXFKSsrSy+++KLuuece/f3vf9fp06fVtWtXjRo1SmvWrFFGRoYuuugivfzyyyooKNBXX31V5q9Q3lzMjzoPT9Q7KuKalL1jx47q3LmzDh8+7A6MEvUMc6OlMQCOHz+uxYsX68CBA2rXrp3uvPNOLV68WOnp6apXr54mT56svLw8bd68WSNHjtStt94q6cKcX1FRUYxnCkLUeXii3vFLP/30k1q2bClJeuaZZ3T8+HHNnTtX9evXD3DJAM8IjQHy008/acmSJUpLS9PQoUM1duxY7dy5U2vXrtXHH3+sjh076quvvlKvXr20evXqMi0ODIQPTtR5eKLe4ZKWlqbJkyera9euql+/vr7++mulpqaWGe8KmBkjqgOkZcuWmjRpkiwWi95++20VFBRoypQp6tWrl7Zs2aLvvvtO2dnZ2rlzpzZu3Kjbb7/d/bN8iAQn6jw8Ue9wad26tYYMGaIffvhB7dq102OPPaaOHTsGulhAtdHSGGDHjh3TkiVL9Nlnn2nQoEF65JFHJF0Y95KTk6N3331X999/Px8eIYQ6D0/UO1xKSkpksVi4SxpBh9BoAq4Pk88//1y/+c1v9NBDD5U7hm6q0EKdhyfqHUAwo3vaBFq0aKGJEydKkj788EPl5+dr5syZZY7hQyS0UOfhiXoHEMwIjSbRokULTZo0SWfPntXp06eZqysMUOfhiXoHEKzonjaZ3NxcNW7cWFarlQ+TMEGdhyfqHUCwITSaFEtJhR/qPDxR7wCCBaERAAAAHvHnLQAAADwiNAIAAMAjQiMAAAA8IjQCAADAI0IjAAAAPCI0AgAAwCNCIwAAADwiNAIAAMAjQiMAAAA8+v8BPyQo4PnCyeQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 800x575 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axlist = mpf.plot(tdf,returnfig=True)\n",
    "ax = axlist[0]\n",
    "ax.scatter(x,y,s=200,marker='D')\n",
    "mpf.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
